'''
给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

 

示例 1：

输入：nums1 = [1,3], nums2 = [2]
输出：2.00000
解释：合并数组 = [1,2,3] ，中位数 2
示例 2：

输入：nums1 = [1,2], nums2 = [3,4]
输出：2.50000
解释：合并数组 = [1,2,3,4] ，中位数 (2 + 3) / 2 = 2.5
示例 3：

输入：nums1 = [0,0], nums2 = [0,0]
输出：0.00000
示例 4：

输入：nums1 = [], nums2 = [1]
输出：1.00000
示例 5：

输入：nums1 = [2], nums2 = []
输出：2.00000

'''
class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        nums = [-1] * ((len(nums1)+len(nums2)) // 2 + 1)
        remainder = (len(nums1)+len(nums2)) % 2
        m, n = 0, 0
        for i in range(len(nums)):
            if m < len(nums1) and n < len(nums2):
                if nums1[m] <= nums2[n]:
                    nums[i] = nums1[m]
                    m += 1
                else:
                    nums[i] = nums2[n]
                    n += 1
            elif m >= len(nums1):
                nums[i] = nums2[n]
                n += 1
            elif n >= len(nums2):
                nums[i] = nums1[m]
                m += 1
        return nums[-1] if remainder == 1 else (nums[-1] + nums[-2]) / 2